package game.square;

import be.kuleuven.cs.som.annotate.Basic;
import be.kuleuven.cs.som.annotate.Immutable;
import be.kuleuven.cs.som.annotate.Raw;

/**
 * An abstract class of non openable borders, as a special type of a border.
 * 
 * @version 1.0
 * @author Chris Desomer, Geert Heyman
 */
public abstract class NotOpenableBorder extends Border {

	/**
	 * Initialize this new not openable border with the given slippery boolean
	 * 
	 * @param	slippery
	 * 			Indicates if this border is slippery or not.
	 * @effect	this new not openable border is initialized as a new border
	 * 			with the given slippery boolean.
	 * 		  | super(slippery)
	 */
	@Raw
	public NotOpenableBorder(boolean slippery)
			throws IllegalArgumentException, IllegalStateException {
		super(slippery);
	}
	
	/**
	 *  Check if this border is open or not.
	 */
	@Override
	public boolean isOpenBorder(){
		return false;
	}
	
	/**
	 * Check if this not openable border is openable.
	 */
	@Basic
	@Immutable
	@Override
	public boolean isOpenable(){
		return false;
	}

}
